const express = require('express');
// 导入数据库
const db = require('../../db/index');
const router = express.Router();
router.get('/list', (req, res) => {
  res.render('admin/nav');
});
// get查看导航详情的数据
router.get('/query', (req, res) => {
  // 定义一个变量 看一看发来的请求中有search吗
  let isSearch = req.query.search ? req.query.search : '';
  //查询数据总条数
  var count;
  const sqlCount = `select count(*) as count from nav  where nav_name like "%${isSearch}%"`;
  db.query(sqlCount, (err, result) => {
    if (err) {
      //数据库操作失败
      return err.message;
    }
    // 查询出的数据条数
    count = result[0].count;
  });
  const { page, limit } = req.query;
  var offset = (page - 1) * limit;
  // 前台 发来分页数据
  // console.log(req.query);
  var sql = `select * from nav where nav_name like "%${isSearch}%" limit ${offset},${limit}`;
  // 查询数据
  // var sql = `select * from nav`;
  db.query(sql, (err, results) => {
    if (err) {
      return res.send({
        code: 1,
        msg: err.message,
      });
    }
    if (results.length) {
      return res.send({
        code: 0,
        msg: '数据查询成功',
        data: results,
        count: count,
      });
    } else {
      return res.send({
        code: 1,
        msg: '没有相应的数据',
      });
    }
  });
});
// 查看添加导航页面
router.get('/navadd', (req, res) => {
  res.render('admin/navadd');
});
// 添加导航的路由
router.post('/insert', (req, res) => {
  // console.log(req.body);
  var { nav_name, nav_alias, nav_sort, is_show } = req.body;
  is_show = is_show ? 1 : 0;
  // console.log(is_show);
  /* {
  nav_name: 'adminqweqwe',
  nav_alias: '1789',
  nav_sort: '54564',
  is_show: '1'
} */ //可以拿到值
  // 去操作数据库
  var sql = 'select nav_name,nav_alias from nav where nav_name=? or nav_alias=?';
  db.query(sql, [nav_name, nav_alias], (err, results) => {
    if (err) {
      // 操作数据库失败
      return res.send({
        code: 0,
        msg: err.message,
      });
    }
    // 查询数据库成功
    if (
      results.length == 1 &&
      results[0].nav_name == nav_name &&
      results[0].nav_alias == nav_alias
    ) {
      // 那么说明数据库中 有一条数据的导航名和别名都和输入的数据是相同的
      return res.send({
        code: 0,
        msg: '导航的名称和别名均已存在，请重新输入',
      });
    }
    if (results.length == 2) {
      // 输入的这条数据  与数据库中的两个数据重复了
      return res.send({
        code: 0,
        msg: '导航的名称和别名均已存在，请重新输入',
      });
    }
    if (results.length == 1 && results[0].nav_name == nav_name) {
      return res.send({
        code: 0,
        msg: '导航的名称已存在，请重新输入',
      });
    }
    if (results.length == 1 && results[0].nav_alias == nav_alias) {
      return res.send({
        code: 0,
        msg: '导航的别名已存在，请重新输入',
      });
    }
    if (results.length == 0) {
      // 数据库中  没有数据与其相重复  可以执行插入操作
      var sql = `insert into nav(nav_name,nav_alias,nav_sort,is_show) value (?,?,?,?);`;
      db.query(sql, [nav_name, nav_alias, nav_sort, is_show], (err, results) => {
        if (err) {
          // 执行SQL发生错误
          return res.send({
            code: 0,
            msg: err.message,
          });
        }
        // affectedRows: 1,  影响行数
        if (results.affectedRows != 1) {
          return res.send({ code: 0, msg: '导航添加失败' });
        } else {
          // 影响行数为1
          // 说明成功添加
          return res.send({ code: 1, msg: '导航添加成功' });
        }
      });
    }
  });
});
// 修改导航数据的路由
router.get('/update', (req, res) => {
  // 获取发来的数据  id  是否展示(直接填入数据库的值,前台已做修改 排序)
  const id = req.query.id;
  const show = req.query.show ? req.query.show : '';
  const sort = req.query.sort ? req.query.sort : '';
  let sqlUpdate = '';
  if (show) {
    // 修改展示是否展示
    sqlUpdate = `update nav set is_show=${show} where nav_id=${id}`;
  }
  if (sort) {
    // 修改排序
    sqlUpdate = `update nav set nav_sort=${sort} where nav_id=${id}`;
  }
  // console.log(sqlUpdate);
  // const sql = `update nav set is_show=${show} where nav_id=${id}`;
  db.query(sqlUpdate, (err, results) => {
    if (err) {
      return res.send({ code: 0, msg: err.message });
    }
    if (results.affectedRows == 1) {
      // 影响了一行 修改成功了
      return res.send({ code: 1, msg: '修改成功' });
    } else {
      return res.send({ code: 0, msg: '修改失败' });
    }
  });
});
// 删除数据
router.get('/delete', (req, res) => {
  const sql = 'delete from nav where nav_id=?';
  db.query(sql, req.query.id, (err, results) => {
    // console.log(sql);
    if (err) {
      res.send({
        code: 0,
        msg: err.message,
      });
    }
    if (results.affectedRows == 1) {
      return res.send({
        code: 1,
        msg: '删除成功',
      });
    } else {
      return res.send({
        code: 0,
        msg: '删除失败',
      });
    }
  });
  // console.log(req.query.id);
});

// 修改数据
router.get('/updateAll', (req, res) => {
  // 操作数据库
  const sql = `select * from nav where nav_id=?`;
  db.query(sql, req.query.id, (err, results) => {
    if (err) {
      // sql执行失败
      return res.send({
        code: 0,
        msg: err.message,
      });
    }
    if (results.length != 0) {
      // console.log(results);
      return res.send({
        code: 1,
        msg: '查询成功',
        data: results[0],
      });
    } else {
      return res.send({
        code: 0,
        msg: '查询失败',
      });
    }
  });
});

router.get('/deletecheck', (req, res) => {
  var { ids } = req.query;

  // console.log(ids);
  var idArr = ids.split(',');
  var sql = `DELETE FROM nav WHERE nav_id in (${idArr})`;
  db.query(sql, (err, results) => {
    if (err) {
      return res.send({ code: 0, msg: err.message });
    }
  });
  // console.log(idArr);
  // idArr.forEach(id => {
  //   // console.log(id);
  //   var sql = `DELETE FROM product_classification WHERE pc_id=${id}`;
  //   db.query(sql, (err, results) => {
  //     if (err) {
  //       return res.send({ code: 0, msg: err.message });
  //     }
  //     // 产品分类  没有图片！！！！！
  //     // if (results.affectedRows == 1) {
  //     //   // 影响行数等于一行  数据库删除了  然后去删除图片
  //     //   fs.unlink(img_url, err => {
  //     //     if (err) return res.send({ code: 0, msg: '多图删除失败' });
  //     //   });
  //     // }
  //   });
  // });
  res.send({ code: 1, msg: '删除成功' });
});

router.post('/updateAll', (req, res) => {
  // 名字不一样  解构不成功！！！！！！！！！！
  const { nav_name, nav_alias, nav_id } = req.body;
  // console.log(nav_name, nav_alias, nav_id);
  // console.log(req.body);
  // 操作数据库了  update nav set nav_name=nav_name,nav_alias=nav_alias where nav_id =nav_id
  const sql = `update nav set nav_name='${nav_name}',nav_alias='${nav_alias}' where nav_id =${nav_id}`;
  // console.log(sql);
  db.query(sql, (err, results) => {
    if (err) {
      return res.send({ code: 0, msg: err.message });
    }
    if (results.affectedRows !== 1) {
      // 没有修改成功
      return res.send({ code: 0, msg: '修改失败' });
    } else {
      return res.send({ code: 1, msg: '修改成功' });
    }
  });
});

module.exports = router;
